Queremos hacer nuestra propia red social en la cual el contenido publicado por los usuarios pueda ser visible por otros usuarios de la red, dependiendo de cómo se haya configurado dicho contenido.
Cuando se crea una publicación se registra el usuario que creó la publicación y la fecha de publicación. La misma puede ser:
Considerar que en cualquier momento debería poder cambiarse la visibilidad del contenido. Por ejemplo, una publicación pública debería poder limitarse para que sea privada, o con una lista negra.
Además algunas publicaciones, a las que denominamos historias, sólo son visibles hasta el día siguiente de su publicación por aquellos usuarios que correspondan de acuerdo a si la visibilidad de la misma es pública, privada o con lista negra.
Independientemente de todo lo anterior, quien creó la publicación o historia siempre debería poder ver su propio contenido.
Los usuarios ya están programados, como puede verse en la biblioteca, y entienden el mensaje
tieneContacto(unUsuario)
para determinar siunUsuario
es efectivamente un contacto del usuario que reciba ese mensaje.
Ejemplos de uso
Los nombres elegidos para las referencias de los ejemplos tienen como finalidad describir cada escenario.
unaPublicacionPrivada.esVisible(unContactoDelCreador, unaFechaCualquiera)
=> true
unaHistoriaPublica.esVisible(usuarioDesconocido, unaFechaLejana)
=> false
Adicionalmente, se pide completar los métodos del objeto creacionDeContenido
de modo que creen y retornen el contenido correspondiente en base a tu modelo.
El objetivo de estos métodos que se usarán desde las pruebas es darte la libertad de modelar con mayor libertad que en los trabajos anteriores. Las pruebas automáticas asumirán que los objetos que se obtengan como resultado de ejecutar esta lógica de creación respeten la configuración indicada por el nombre del método.
Para saber la diferencia en días entre dos fechas se pueden restar entre ellas con el operador -
. Para más información podés revisar la documentación oficial.
Tenés que iniciar sesión antes de empezar a enviar tus soluciones